TerraformのCI/CDツールAtlantisをローカルでお手軽に試してみる
「Atlantisを試してみたい。でもECSやEKS用意するのが面倒だな。」
ローカルで簡単に試す手順が用意されていました。
想像より簡単に試すことができたので、紹介します。
Atlantisとは
一言でいうと、GitHubやGitLabのPRコメント上で Terraformのplan
やapply
ができるツールです。
以下の記事で分かりやすく解説されています。
Terraform Pull Request Automation | Atlantis
やってみた
以下の手順を参考にAtlantisを試してみます。
実際に運用する際は、EKSやECS上にデプロイして使用してください。
Atlantisのインストール・セットアップ
リリースページから自分のPCにあったZIPファイルをダウンロードしてください。
Releases · runatlantis/atlantis
ダウンロードしたディレクトリに移動して、ZIPファイルを解凍します。
Github Tokenの用意
Atlatinsを実行する前に、テスト用にGithub Tokenを用意します。
GithubのTokenの作成ページに移動して、repo
のScopeを持ったTokenを作成します。
Tokenは次のステップで使用するので、メモしておきます。
Atlantisのセットアップ
検証用のコマンドを実行します。Githubユーザー名やTokenなど必要な情報を入力します。
$ ./atlantis testdrive Welcome to Atlantis testdrive! This mode sets up Atlantis on a test repo so you can try it out. We will - fork an example terraform project to your username - install terraform (if not already in your PATH) - install ngrok so we can expose Atlantis to GitHub - start Atlantis Press Ctrl-c at any time to exit github.com username: <Githubユーザー名> # Githubユーザー名 To continue, we need you to create a GitHub personal access token with "repo" scope so we can fork an example terraform project. Follow these instructions to create a token (we don't store any tokens): https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token - use "atlantis" for the token description - add "repo" scope - copy the access token GitHub access token (will be hidden): <Github Token> # 前の手順で作成したGithub Tokenをコピペ
すると以下のように、サンプルリポジトリが自動でFork・Pull Requestが作成されてAtlantisを試すことができます。 (コマンド一つでここまでやってくれるなんて、検証が楽で助かります。)
自動作成されたPull Requestをみてみる
実際にPull Request見たい方は、私が検証で使用したPull Requestを見てみてください。
まずは、変更内容を見てみます。
null_resource
を作成してますね。
コメントにはPlanの結果が表示されています。(Pull Requestのnull_resource
が作成されることがわかります。)
Applyしたいので、コメントしてみます。
すると以下のように自動でコメントが追加されます。Applyされたようですね。
もう一度Planすると、想定通り差分はなしになっていました。
おわりに
GitHubのPRからコメントを打つだけで、TerraformのPlanやApplyが実行できるの便利そうです。
今回は一番お手軽なLocal検証でしたが、次はECSやEKSにデプロイして試してみたいと思います。
ほぼコマンド一つでLocal検証は簡単に実施できるため、興味がある方は試してみてください。
以上、AWS事業本部の佐藤(@chari7311)でした。